package com.android.sgzcommon.take_photo;

import com.android.sgzcommon.take_photo.entity.PhotoUpload;
import com.android.sgzcommon.take_photo.listener.OnPhotoClickListener;
import com.android.sgzcommon.take_photo.listener.OnPhotoUploadListener;
import com.android.sgzcommon.take_photo.listener.OnTakePhotoListListener;

import java.util.List;
import java.util.Map;

/**
 * @author sgz
 * @date 2021-02-24
 */
public interface GetPhotoList<T extends PhotoUpload> {

    /**
     * @return
     */
    List<T> getPhotoUploadList();

    /**
     * @param t
     */
    void addPhotoUpload(T t);

    /**
     * @param ts
     */
    void addPhotoUploads(List<T> ts);

    /**
     *
     * @param listener
     */
    void setOnPhotoClickListener(OnPhotoClickListener listener);

    /**
     * @param url
     * @param data
     * @param headers
     * @param listener
     */
    void uploadPhotos(String url, Map<String, String> data, Map<String, String> headers, final OnPhotoUploadListener listener);

    /**
     * @param listener
     */
    void setOnPhotoListListener(OnTakePhotoListListener listener);

    /**
     *
     */
    void clearPhotos();

    /**
     *
     */
    void notifyPhotoChanged();

    /**
     * @param position
     */
    void notifyPhotoChanged(int position);
}
